Mikmak View Category Updating View
Home

Mikmak View Category Updating View

Mikmak View Category Updating View

Op deze pagina kan de beheerder de details van een rij uit de tabel wijzigen. Hij heeft dan de keuze om:

  1. de gewijzigde detailsgegeven naar de tabel weg te schrijven en de tabel te updaten
  2. de details van een andere rij te bekijken
  3. te annuleren en terug naar Editing view te gaan

Probleem

We gebruiken de ReadingOne.phppagina als basis. We kopiëren de code uit View/Category/ReadingOne.php en kopiëren dat in een nieuw bestand met de naam View/Category/UpdatingOne.php.

Design

  1. We gebruiken de $model instantie die in de view closure vanuit de actiemethode ReadingOne in de Category Controller klasse aan de view wordt meegegeven om de gegevens die getoond moeten worden op te halen.
  2. Voor de Annuleren use case kiezen we voor een a html element en geen html button. Een button vereist een form html element. Vermits we geen gegevens naar de server moeten sturen kunnen we hiervoor een get gebruiken.
    <a href="index.php?uc=Category-editing">
        <span class="icon-close"></span><span
            class="screen-reader-text">Sluiten</span></a>
  3. Voor de Update use case gebruiken we een submit html button omdat de we gewijzigde gegevens naar de server moeten sturen. Dat doen we best met een post en daarvoor hebben we een form html element nodig. De Id van de te updaten rij geven we mee als waarde van het value attribuut.
    <button type="submit" value="Category-updateOne" name="uc">
        <span class="icon-disk"></span>
        <span class="screen-reader-text">Update</span>
    </button>
  4. Nu moeten we nog de input html elementen aanpassen. We verwijderen het attribuut readonly en voegen het attribuut required waar nodig toe en vullen de waarden voor het value attribuut in met de waarden van de UnitBase instantie.
    <fieldset>
        <div>
            <input id="Category-Id" name="Category-Id" style="width: 6em;"
                   type="hidden" value="<?php echo $model->getId(); ?>" readonly/>
        </div>
        <div>
            <label for="Category-Name">Naam</label>
            <input id="Category-Name" name="Category-Name"
                   class="text" style="width: 32.5%;" type="text"
                   value="<?php echo $model->getName(); ?>" required/>
        </div>
        <div>
            <label for="Category-Description">Beschrijving</label>
            <textarea id="Category-Description" name="Category-Description"
                      style="width: 40%;"><?php echo $model->getDescription(); ?></textarea>
        </div>
    </fieldset>

Oplossing

De volledige code voor UpdatingOne.php:

<div class="floor" id="second-floor" xmlns="http://www.w3.org/1999/html">
    <div class="control-panel">
        <a href="index.php?uc=Admin-index" class="tile _14x1">
            <span class="icon-menu2"></span>
            <span class="screen-reader-text">Home</span>
        </a>
        <h1>Categorie</h1>
    </div>
    <form class="room" action="index.php" method="post">
        <header>
            <h2>Categorie</h2>
            <div id="command-panel" class="command-panel">
                <button type="submit" value="Category-updateOne" name="uc">
                    <span class="icon-disk"></span>
                    <span class="screen-reader-text">Update</span>
                </button>
                <a href="index.php?uc=Category-editing">
                    <span class="icon-close"></span><span
                        class="screen-reader-text">Sluiten</span></a>
            </div>
        </header>
        <div class="detail">
            <fieldset>
                <div>
                    <input id="Category-Id" name="Category-Id" style="width: 6em;"
                           type="hidden" value="<?php echo $model->getId(); ?>" readonly/>
                </div>
                <div>
                    <label for="Category-Name">Naam</label>
                    <input id="Category-Name" name="Category-Name"
                           class="text" style="width: 32.5%;" type="text"
                           value="<?php echo $model->getName(); ?>" required/>
                </div>
                <div>
                    <label for="Category-Description">Beschrijving</label>
                    <textarea id="Category-Description" name="Category-Description"
                        style="width: 40%;"><?php echo $model->getDescription(); ?></textarea>
                </div>
            </fieldset>
        </div>
        <div class="feedback">
        </div>
    </form>
    <?php $partialView('Category', 'ReadingAll', $model); ?>
</div>
<?php $appStateView(); ?>

JI

2015-12-06 16:22:48